package logo;

import java.awt.*;
import javax.swing.*;
import java.util.*;
import tortues.Tortue;
import tortues.TortueAmelioree;

/**
 * Titre : Logo Description : Un exemple de programme graphique utilisant la
 * celebre Tortue Logo Copyright : Copyright (c) 2000 Societe : LIRMM
 *
 * @author J. Ferber
 * @version 2.0
 */
public class FeuilleDessin extends JPanel {

    public static int DIMX = 600;
    public static int DIMY = 400;
    private ArrayList<Tortue> tortues; // la liste des tortues enregistrees
    private ArrayList<TortueAmelioree> mesTortues; // la liste des tortues enregistrees

    public ArrayList<TortueAmelioree> getMesTortues() {
        return mesTortues;
    }

    public FeuilleDessin() {
        mesTortues = new ArrayList<>();
        tortues = new ArrayList<>();
        //DIMY = this.getHeight();
        //DIMX = this.getWidth();
    }

    public void addTortue(Tortue o) {
        tortues.add(o);
    }

    public void addTortue(TortueAmelioree o) {
        mesTortues.add(o);
    }

    public TortueAmelioree getTortueParPosition(int pos) {
        if (mesTortues != null && mesTortues.size() > pos) {
            return mesTortues.get(pos);
        } else {
            return null;
        }
    }

    public void reset() {
        for (Tortue t : tortues) {
            t.reset();
        }
        for (Tortue t : mesTortues) {
            t.reset();
        }
    }

    @Override
    public void paintComponent(Graphics g) {
        super.paintComponent(g);

        Color c = g.getColor();

        Dimension dim = getSize();
        g.setColor(Color.white);
        g.fillRect(0, 0, dim.width, dim.height);
        g.setColor(c);

        showTurtles(g);
    }

    public void showTurtles(Graphics g) {
        for (Tortue t : tortues) {
            t.drawTurtle(g);
        }
        for (Tortue t : mesTortues) {
            t.drawTurtle(g);
        }
    }
}
